www.gusucode.com > 各种VC自绘控件源码程序 > 各种VC自绘控件源码/code/SkinSlider 自绘/SkinSlider.cpp

    #include "stdafx.h"
#include "../global.h"
#include "JiaFilmPlayer.h"
#include "JiaFilmPlayerDlg.h"
#include "DlgWndPop.h"
#include "skinslider.h"
#include ".\skinslider.h"
//#include "DlgMiniSlider.h"

CSkinSlider::CSkinSlider(void)
{
	m_bMouseOn = FALSE;
	m_bScrolling = FALSE;
	m_nAnchorTl = m_nAnchorBr = 0;			//移动时对齐方式
	m_bTracked = FALSE;
	m_bDrawSelfDown = FALSE;
	m_nCoveredLen = 0;
	m_pCovered = NULL;

	m_dwTimeTrack = (DWORD)-1;
}

CSkinSlider::~CSkinSlider(void)
{
/*	if(m_pCovered != NULL)
	{
		delete m_pCovered;
		m_pCovered = NULL;
	}*/
	m_bmpBack.DeleteObject();
	m_bmpSelfDown.DeleteObject();
	m_bmpNormal.DeleteObject();
	m_bmpDown.DeleteObject();

	if (IsWindow(m_ToolTip.GetSafeHwnd()))
	{
		m_ToolTip.DestroyWindow();
	}
}

void CSkinSlider::LoadSlider(CString strBack, CString strSelfDown, CString strNormal, CString strDown, BOOL bHaveTooltip/* = FALSE*/)
{
	m_bmpBack.DeleteObject();
	m_bmpSelfDown.DeleteObject();
	m_bmpNormal.DeleteObject();
	m_bmpDown.DeleteObject();
	CSize size;
	if(!strBack.IsEmpty())
	{
		HBITMAP hBmp = ::LoadBitmap(theApp.m_hRes, MAKEINTRESOURCE(atoi(strBack)));
		m_bmpBack.Attach(hBmp);
	}
	if(!strSelfDown.IsEmpty())
	{
		HBITMAP hBmp = ::LoadBitmap(theApp.m_hRes, MAKEINTRESOURCE(atoi(strSelfDown)));
		m_bmpSelfDown.Attach(hBmp);
		m_bDrawSelfDown = TRUE;
	}
	if(!strNormal.IsEmpty())
	{
		HBITMAP hBmp = ::LoadBitmap(theApp.m_hRes, MAKEINTRESOURCE(atoi(strNormal)));
		m_bmpNormal.Attach(hBmp);
	}
	if(!strDown.IsEmpty())
	{
		HBITMAP hBmp = ::LoadBitmap(theApp.m_hRes, MAKEINTRESOURCE(atoi(strDown)));
		m_bmpDown.Attach(hBmp);
	}
	ModifyStyle(WS_TABSTOP, 0);

	if (bHaveTooltip)
	{
		m_ToolTip.Create (this, FALSE);
		m_ToolTip.SetOwner (this);
		m_ToolTip.Hide ();
		SetTimer(2, 400, NULL);
	}
}
BEGIN_MESSAGE_MAP(CSkinSlider, CSliderCtrl)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_CAPTURECHANGED()
ON_WM_KEYDOWN()
ON_WM_KEYUP()
ON_WM_DESTROY()
ON_WM_TIMER()
//ON_WM_HSCROLL()
//ON_WM_VSCROLL()
//ON_WM_MOUSEWHEEL()
ON_WM_MOUSEWHEEL()
END_MESSAGE_MAP()

void CSkinSlider::OnPaint()
{
	PAINTSTRUCT ps;
//	CPaintDC dc(this); // device context for painting
	CDC* pDC = BeginPaint(&ps);
	CRect rc;
	GetClientRect(&rc);
	if(m_pCovered == NULL && m_nCoveredLen < 0)
		CGlobal::DrawBitmap(pDC, (HBITMAP)m_bmpSelfDown, rc, TRUE);
	else
		CGlobal::DrawBitmap(pDC, (HBITMAP)m_bmpBack, rc, TRUE);
	if(m_bDrawSelfDown && m_pCovered != NULL && m_nCoveredLen > 0)
	{
		int nIndexStart = 0, nIndexEnd = 0;
		BOOL bStart = FALSE;
		for(int i = 0; i <= m_nCoveredLen; i ++)
		{
			if((bStart && m_pCovered[i] <= 0) )//|| i == m_nCoveredLen - 1)
			{
				bStart = FALSE;
				nIndexEnd = i;
				int nRcLeft = rc.Width() * nIndexStart / m_nCoveredLen;
				int nRcRight = rc.Width() * nIndexEnd / m_nCoveredLen;
				if(nRcLeft == 0)
					nRcLeft = 1;
				CGlobal::DrawBitmap(pDC, (HBITMAP)m_bmpSelfDown, CRect(nRcLeft, rc.top, nRcRight, rc.Height()), TRUE);
			}
			if(m_pCovered[i] > 0 && !bStart)
			{
				nIndexStart = i;
				bStart = TRUE;
			}
		}
	}
	CRect Tr;
	get_ThumbRect(Tr);
	if(m_bMouseOn)
	{
		CGlobal::DrawBitmap(pDC, (HBITMAP)m_bmpDown, Tr, TRUE);
	}
	else
	{
		CGlobal::DrawBitmap(pDC, (HBITMAP)m_bmpNormal, Tr, TRUE);
	}
	
	EndPaint(&ps);
//	pDC->DeleteDC();
}
//********************************************************************
//函 数 名:	CSkinSlider::IsEndFilmDownload
//功能描述:	判断文件是否下完
//输入参数: 无	
//输出参数: 无
//返 回 值: 错误码
//
//修改历史:
//
//    1.作 者: wwd
//      时 间: 2008/4/3   10:40
//	  描 述: 新生成函数
//*********************************************************************

BOOL CSkinSlider::IsEndFilmDownload()
{
	int nDownload = 0;
	if(m_pCovered == NULL )
		return TRUE;
	else 
	{
		for(int i = m_nCoveredLen-1; i >=  0; i--)
		{
			if ( m_pCovered[i] <= 0) 
			{
				return FALSE;
			}
			nDownload++;

		}
		if (nDownload == m_nCoveredLen) 
		{
			return TRUE;
		}
		
	}
	return FALSE;

}
void CSkinSlider::OnLButtonDown(UINT nFlags, CPoint point)
{

	CRect rc;
	SetCapture();
	get_ThumbRect(rc);
	
	if(rc.PtInRect(point))
	{
		m_bMouseOn = TRUE;
	}
		/*GetThumbRect(rc);
		if(!rc.PtInRect(point))		//默认的windows控件的thrumb会跳格前进
		{
			SetThumb(point);
		}
		CSliderCtrl::OnLButtonDown(nFlags, point);
	}
	else*/
	{
		//if(GetStyle() & TBS_VERT)
		//{
		//	/*void* pParent = GetParent();
		//	
		//	if(((CJiaFilmPlayerDlg*)(theApp.m_pMainWnd))->m_pDlgVol == pParent)
		//	{
		//		CDlgVol* pDlg = (CDlgVol*)pParent;
		//		if(pDlg != NULL)
		//			pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
		//	}*/
		//
		//}
		//else
		{
			Invalidate(FALSE);
			SetThumb(point);
#if 0
			CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)GetParent();
			if(pDlg != NULL)
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());

#else
			void* pParent = GetParent();
			if (theApp.m_pMainWnd == pParent) 
			{
				CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)pParent;
				if(pDlg != NULL)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
			else if(((CJiaFilmPlayerDlg*)(theApp.m_pMainWnd))->m_pDlgPop == pParent)
			{
				CDlgWndPop* pDlg = (CDlgWndPop*)pParent;
				if(pDlg != NULL)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
			else if(((CJiaFilmPlayerDlg*)(theApp.m_pMainWnd))->m_pDlgVol == pParent)
			{
				CDlgVol* pDlg = (CDlgVol*)pParent;
				if(pDlg != NULL)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
			else
			{
				((CJiaFilmPlayerDlg*)(theApp.m_pMainWnd))->m_pminiSlider->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
#endif

		}
	}
	RedrawWindow();
	//Invalidate(FALSE);
	m_bScrolling = TRUE;
}

void CSkinSlider::OnLButtonUp(UINT nFlags, CPoint point)
{
	m_bScrolling = FALSE;
	Invalidate(FALSE);
	CJiaFilmPlayerDlg * pMainDlg = (CJiaFilmPlayerDlg*)(theApp.GetMainWnd());
#if 0	
	CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)GetParent();
	if(pDlg != NULL)
	{
		if(m_bMouseOn)
		{
			if(GetStyle() & TBS_VERT)
			{
				SetThumb(point);

			}
			else
			{
				SetThumb(point);
			}
			pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			CSliderCtrl::OnLButtonUp(nFlags, point);
		}
	}
#else
	void* pObject = GetParent();
	if (theApp.m_pMainWnd == pObject) 
	{
		CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)pObject;
		if(pDlg != NULL)
		{
			if(m_bMouseOn)
			{
				if(GetStyle() & TBS_VERT)
				{
					SetThumb(point);

				}
				else
				{
					SetThumb(point);
				}
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
				CSliderCtrl::OnLButtonUp(nFlags, point);
			}
		}
	}
	else if(pMainDlg->m_pDlgPop == pObject)
	{
		CDlgWndPop* pDlg = (CDlgWndPop*)pObject;
		if(pDlg != NULL)
		{
			if(m_bMouseOn)
			{
				if(GetStyle() & TBS_VERT)
				{
					SetThumb(point);

				}
				else
				{
					SetThumb(point);
				}
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
				CSliderCtrl::OnLButtonUp(nFlags, point);
			}
		}

	}
	else if(pMainDlg->m_pDlgVol == pObject)
	{
		CDlgVol* pDlg = (CDlgVol*)pObject;
		if(pDlg != NULL)
		{
			if(m_bMouseOn)
			{
				if(GetStyle() & TBS_VERT)
				{
					SetThumb(point);
				}
				else
				{
					SetThumb(point);
				}
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
				CSliderCtrl::OnLButtonUp(nFlags, point);
			}
		}
	}
	else
	{
		CDlgWndPop* pDlg = (CDlgWndPop*)pObject;
		if(pDlg != NULL)
		{
			if(m_bMouseOn)
			{
				if(GetStyle() & TBS_VERT)
				{
					SetThumb(point);

				}
				else
				{
					SetThumb(point);
				}
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
				CSliderCtrl::OnLButtonUp(nFlags, point);
			}
		}
	}
	

#endif

	m_bMouseOn = FALSE;
	ReleaseCapture();
}

void CSkinSlider::OnMouseMove(UINT nFlags, CPoint point)
{
	if(m_bMouseOn)
	{	
		//if(GetStyle() & TBS_VERT )
		{			
			//CRect rc;			
			//get_ThumbRect(rc);
			//if(rc.PtInRect(point))
			//{			
			//	GetThumbRect(rc);
			//	if(!rc.PtInRect(point))		//默认的windows控件的thrumb会跳格前进
			//	{
				SetThumb(point);
			//	}

			//}
		}
		
		RedrawWindow();
		/*Invalidate(FALSE)*/;
		CJiaFilmPlayerDlg* pMainDlg = (CJiaFilmPlayerDlg*)(theApp.GetMainWnd());;

#if 0
		CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)GetParent();
		if(m_bScrolling && m_bTracked)
			pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
#else
		void* pParent = GetParent();

		if (theApp.m_pMainWnd == pParent) 
		{
			CJiaFilmPlayerDlg* pDlg = (CJiaFilmPlayerDlg*)pParent;
			if(m_bScrolling && m_bTracked)
				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
		}
		//-----------
		if(pMainDlg->m_pDlgPop == pParent)
		{
			CDlgWndPop* pDlg = (CDlgWndPop*)pParent;
			if(pDlg != NULL)
			{
				if(m_bScrolling && m_bTracked)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}

		}
		else if(pMainDlg->m_pDlgVol == pParent)
		{
			CDlgVol* pDlg = (CDlgVol*)pParent;
			if(pDlg != NULL)
			{
				if(m_bScrolling && m_bTracked)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
		}
		else
		{
			CDlgWndPop* pDlg = (CDlgWndPop*)pParent;
			if(pDlg != NULL)
			{
				if(m_bScrolling && m_bTracked)
					pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
			}
		}
		

		CJiaFilmPlayerDlg * pDlg1 = (CJiaFilmPlayerDlg*) (theApp.m_pMainWnd);
		if (pDlg1->m_nSeekBarRanger > 0)
		{
			static int nSkip = 0;
			if (nSkip ++ % 4 == 0)
				SetToolTipEx(TRUE);
		}
#endif

		CSliderCtrl::OnMouseMove(nFlags, point);
	}
	else
	{
		BOOL bShowTooltip = FALSE;
		if (IsWindow(m_ToolTip.GetSafeHwnd()))
		{
			CJiaFilmPlayerDlg * pDlg = (CJiaFilmPlayerDlg*) (theApp.m_pMainWnd);
			if (pDlg->m_nSeekBarRanger > 0)
			{
				CRect Tr;
				get_ThumbRect(Tr);
				CPoint pos;
				GetCursorPos(&pos);
				ScreenToClient(&pos);
				if (Tr.PtInRect(pos))
				{
					bShowTooltip = TRUE;
					SetToolTipEx(FALSE);
				}
			}

			if (bShowTooltip == FALSE)
			{
				m_ToolTip.Hide();
			}
		}
	}
}

void CSkinSlider::SetToolTipEx(BOOL bCurPos/* = TRUE*/)
{
	m_dwTimeTrack = GetTickCount();
	CJiaFilmPlayerDlg * pDlg = (CJiaFilmPlayerDlg*) (theApp.m_pMainWnd);

	CPoint ptCursor;
	::GetCursorPos (&ptCursor);
	ptCursor += CPoint ( GetSystemMetrics(SM_CXCURSOR)/2, GetSystemMetrics(SM_CYCURSOR)/2);
	CString strText;
	time_t tmx = bCurPos ? GetPos()/1000 : pDlg->m_nFilmpos/1000;
	tm * ptm = gmtime(&tmx);
	if (0)
	{
		int nMillSec = GetPos() % 1000;
		if (ptm->tm_hour > 0)
			strText.Format("%d:%d:%d %d", ptm->tm_hour, ptm->tm_min, ptm->tm_sec, nMillSec);
		else
			strText.Format("%d:%d %d", ptm->tm_min, ptm->tm_sec, nMillSec);
	}
	else
	{
		if (ptm->tm_hour > 0)
			strText.Format("%d:%d:%d", ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
		else
			strText.Format("%d:%d", ptm->tm_min, ptm->tm_sec);
	}

	if (IsWindow(m_ToolTip.GetSafeHwnd()))
	{
		m_ToolTip.Track(ptCursor, strText);
	}
}

void CSkinSlider::OnCaptureChanged(CWnd *pWnd)
{
/*	if(m_bMouseOn)
	{
		ReleaseCapture();
		Invalidate(FALSE);
	}
*/	CSliderCtrl::OnCaptureChanged(pWnd);
}

void CSkinSlider::get_ThumbRect(CRect& r)
{
	BITMAP bm;
	GetObject(m_bmpNormal, sizeof(bm), &bm);
	GetThumbRect(&r);

	if(GetStyle() & TBS_VERT)
	{
		CRect rc;
		GetClientRect(rc);
		int ny = rc.Height();

		int nHarf = r.Height() / 2;
		r.left = 0;
		r.right = r.left + bm.bmWidth;
		if(r.top < ny / 2)
		{
			//r.top = (r.top + 0/*nHarf*/) - (bm.bmHeight / 2);
			//if(r.top < 0)
			//	r.top = 0;
			//r.top = r.top + (ny / 8) * (ny / 2 - r.top) / ny *2;
			r.top -= 3;
			r.bottom = r.top + bm.bmHeight;
		}
		else
		{
		//r.bottom = (r.bottom - nHarf) + (bm.bmHeight / 2);
		//	if(r.bottom > rc.bottom)
		//		r.bottom = rc.bottom;
		//	r.bottom = r.bottom - (ny / 8) * (abs(ny / 2 - r.bottom )) / ny *2;
		r.bottom += 3;
			r.top = r.bottom - bm.bmHeight;
		}
		if(r.top < 0)
			r.top = 0;
	}
	else	
	{
		int nHarf    = (r.Width()+1) / 2;
		r.top = 0;
		r.bottom = r.top + bm.bmHeight;
		r.left = (r.left + nHarf) - ((bm.bmWidth + 1)/ 2)-3;//-3播放完时滑动块显示不完整故-3
		if(r.left < 0)
			r.left = 0;
		r.right = r.left + bm.bmWidth;
	}
}


BOOL CSkinSlider::SetThumb(const CPoint& point)
{
	const int nMin = GetRangeMin();
	const int nMax = GetRangeMax()+1;
	CRect rc;
	CRect rcTmp;
	GetClientRect(&rcTmp);
	GetChannelRect(rc);
	double dPos;
	double dCorrectionFactor = 0.0;
	if (GetStyle() & TBS_VERT) 
	{
		dPos = (double)(point.y - rc.left)/(rc.right - rc.left);
	}
	else
	{
		dPos = (double)(point.x - rc.left)/(rc.right - rc.left);
	}
	dCorrectionFactor = 0.5 *(1-dPos) - 0.5 *dPos;
	int nNewPos = (int)(nMin + (nMax-nMin)*dPos + dCorrectionFactor);
	const bool bChanged = (nNewPos != GetPos());
	if(bChanged)
	{
		SetPos(nNewPos);
	}
	return bChanged;
}

void CSkinSlider::SetPos(int nPos)
{
	if(!m_bScrolling && !m_bMouseOn)
		Invalidate(FALSE);
		
	CSliderCtrl::SetPos(nPos);
}


void CSkinSlider::SetCoveredRanger(BYTE* pData, int nLen)
{
/*	if(m_pCovered != NULL )
	{
		delete m_pCovered;
		m_pCovered = NULL;
	}
*/	m_pCovered = pData;

	m_nCoveredLen = nLen;
}

void CSkinSlider::SetCoveredData(int nIndex)
{
	if(nIndex <= m_nCoveredLen && m_pCovered != NULL)
	{
		m_pCovered[nIndex] = 1;
	}
}

BOOL CSkinSlider::GetCoverStatus()
{
	return (m_pCovered == NULL && m_nCoveredLen == 0);
}

void CSkinSlider::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
//	CSliderCtrl::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CSkinSlider::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
//	CSliderCtrl::OnKeyUp(nChar, nRepCnt, nFlags);
}

void CSkinSlider::OnDestroy()
{
	if (IsWindow(m_ToolTip.GetSafeHwnd()))
	{
		KillTimer(2);
	}
	CSliderCtrl::OnDestroy();

	// TODO: 在此处添加消息处理程序代码
}

void CSkinSlider::OnTimer(UINT nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if (nIDEvent == 1)
	{
	}
	else if (nIDEvent == 2)
	{
		DWORD dwTimeTrack = GetTickCount();

		if (dwTimeTrack - m_dwTimeTrack > 800)
		{
			if (IsWindow(m_ToolTip.GetSafeHwnd())&& m_ToolTip.IsWindowVisible())
			{
				m_ToolTip.Hide();
			}
			m_dwTimeTrack = GetTickCount();
		}
	}

	CSliderCtrl::OnTimer(nIDEvent);
}

//void CSkinSlider::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
//{
//	// TODO: 在此添加消息处理程序代码和/或调用默认值
//
//	CSliderCtrl::OnHScroll(nSBCode, nPos, pScrollBar);
//}

//void CSkinSlider::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
//{
//	// TODO: 在此添加消息处理程序代码和/或调用默认值
//	DT("OnVScroll");
//	if(GetStyle() & TBS_VERT )
//	{
//		CRect rc;
//		CPoint point;
//		GetCursorPos(&point);
//		get_ThumbRect(rc);
//		if(rc.PtInRect(point))
//		{			
//			GetThumbRect(rc);
//			if(!rc.PtInRect(point))		//默认的windows控件的thrumb会跳格前进
//			{
//				SetThumb(point);
//			}
//
//		}
//		ReleaseCapture();
//	}
//
//	CSliderCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
//}

BOOL CSkinSlider::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	//if(GetStyle() & TBS_VERT )
	//{		
	//	CRect rcThumb;
	//	get_ThumbRect(rcThumb);
	//	CRect rc;
	//	GetClientRect(&rc);
	//	DT("rcThumb:%d", rcThumb.bottom );
	//	CPoint point;
	//	point.x =rcThumb.left+1;
	//	int a =rcThumb.top - zDelta/30;
	//	if (a == 13 ) 
	//	{
	//		a += 2;
	//	}
	//	if( a  >= 0 && a< rc.bottom)
	//	{
	//		DT("a :%d", a  );
	//		
	//		point.y = a;
	//	}
	//	else
	//	{
	//		if (zDelta>0) 
	//		{
	//			DT("zDelta>0"  );

	//			point.y = 0;
	//		}
	//		else if(zDelta<0)
	//		{
	//			DT("zDelta<<0"  );
	//			point.y = rc.bottom;
	//		}
	//		else
	//		{
	//			DT("zDelta==0"  );
	//		}
	//	}

	//	DT("mousewheel");
	//	if(rc.PtInRect(point))
	//	{			
	//		//GetThumbRect(rc);
	//		//if(!rc.PtInRect(point))		//默认的windows控件的thrumb会跳格前进
	//		{
	//			SetThumb(point);
	//			DT("%d",point.y);
	//		}
	//	}

	//	void* pParent = GetParent();
	//	CJiaFilmPlayerDlg* pMainDlg = (CJiaFilmPlayerDlg*)(theApp.GetMainWnd());;
	//			
	//	if(pMainDlg->m_pDlgVol == pParent)
	//	{
	//		CDlgVol* pDlg = (CDlgVol*)pParent;
	//		if(pDlg != NULL)
	//		{
	//			if(m_bScrolling && m_bTracked)
	//				pDlg->TrackChangePos(m_nID, SB_ENDSCROLL, GetPos());
	//		}
	//	}
	//	if (pMainDlg->m_nSeekBarRanger > 0)
	//	{
	//		static int nSkip = 0;
	//		if (nSkip ++ % 4 == 0)
	//			SetToolTipEx(TRUE);
	//	}

	//	
	//	//ReleaseCapture();
	//}

	//return CSliderCtrl::OnMouseWheel(nFlags, zDelta, pt);
	return true;
}